qx.Class.define("caraffa.widgets.ABMFormaPago",
{
	extend : qx.ui.window.Window,
	construct : function (codTurno, tipo)
	{
		this._codTurno = codTurno;
		this._tipo = tipo;
		this.base(arguments);
		
		this.setLayout(new qx.ui.layout.VBox(10));
		this.setShowStatusbar(false);

		var grp = new qx.ui.groupbox.GroupBox();
		grp.setLayout(new qx.ui.layout.HBox(5).set({alignX:"center"}));
		var grpFP = new qx.ui.container.Composite(new qx.ui.layout.Basic());

		this._btnGuardar = new qx.ui.form.Button("Guardar");
		
		var rpc = new qx.io.remote.Rpc();
		rpc.setTimeout(10000);
		rpc.setUrl("services/");
		rpc.setServiceName("turnos");
		try
		{
			var result = rpc.callSync("getFormasPago", this._codTurno);
			this._cmbFormaPago = new qx.ui.form.ow.ComboBox("Forma de Pago:", result.values, true);
			
			this._cmbFormaPago.addListener("changeValue", function (e) {
				this._btnGuardar.setUserData("modificarImporte", "1");
				grpFP.removeAll();
				if (this._cmbFormaPago.getValue()) {
					try {
						var obraSocial = rpc.callSync("getObraSocialPlan", this._cmbFormaPago.getValue(), this._codTurno);
						
						//ADD osocial case obraSocial.tabla 
						switch (obraSocial.tipo_forma_pago) {
							case '1':
							case '2':
								grpFP.add(this.getTipoFormaPago(obraSocial.tipo_forma_pago));
								this._formuActivo = obraSocial.tipo_forma_pago;
//								grpFP.add(this.getFormuPlanDorado());
								if (obraSocial.datos.actual === obraSocial.tipo_forma_pago)
								{
									this._btnGuardar.setUserData("modificarImporte", "0");
									this._cmbPrestaciones.setValue(obraSocial.datos.cod_prestacion);
									this._txaObservaciones.setValue(obraSocial.datos.observaciones);
									
									if (obraSocial.tipo_forma_pago == "2") {
										this._txtCodigoHabilitacion.setValue(obraSocial.datos.codigo_habilitacion);
									}
									
									this._txtImporte.setValue(obraSocial.datos.importe);
									this._txtPlus.setValue(obraSocial.datos.plus);
								}
							break;
							default:
								this._formuActivo = 0;
								grpFP.add(this.getFormuContado());
								if (obraSocial.datos.actual == "0") {
									if (obraSocial.datos.cod_prestacion) {
										this._btnGuardar.setUserData("modificarImporte", "0");
										this._cmbPrestaciones.setValue(obraSocial.datos.cod_prestacion);
									} else {
										if (this._tipo != 'C') {
											this._cmbPrestaciones.setValue("");
										}
									}
									
									if (obraSocial.datos.observaciones) {
										this._txaObservaciones.setValue(obraSocial.datos.observaciones);
									} else {
										this._txaObservaciones.setValue("");
									}
									
									if (obraSocial.datos.importe) {
										this._txtImporte.setValue(obraSocial.datos.importe);
									} else {
										if (this._tipo != 'C') {
											this._txtImporte.setValue("");
										}
									}
									
									if (obraSocial.datos.pagares.length > 0) {
										this._txdPagare = null;
										this._txtPagareImporte = null;
										
										this._txdPagare = new Array();
										this._txtPagareImporte = new Array();
										
										for(var i=1;i<=obraSocial.datos.pagares.length;i++) {
											var cntPagare = new qx.ui.container.Composite(new qx.ui.layout.HBox(5));
												this._txdPagare[i] = new qx.ui.form.ow.DateText("Pagare NÂ°"+i+" Vto:");
													this._txdPagare[i].getDateText().setWidth(110);
												this._txtPagareImporte[i] = new qx.ui.form.TextField();
												this._txtPagareImporte[i].setWidth(90);
											
											this._txdPagare[i].setValue(obraSocial.datos.pagares[i-1].fecha_vencimiento);
											this._txtPagareImporte[i].setValue(obraSocial.datos.pagares[i-1].importe);
											
											this._cntPagare.add(this._txdPagare[i]);
											this._cntPagare.add(this._txtPagareImporte[i]);
											this._cntPagares.add(this._cntPagare);
										}
										this._txtCredito.setValue(""+obraSocial.datos.pagares.length+"");
									} else {
										this._txtCredito.setValue("");
										this._cntPagares.removeAll();
										this._cntPagares.setLayout(new qx.ui.layout.VBox(5));
									}
								}
							}
					} catch (ex) {
						alert(ex);
					}
				}
			}, this);
			
			
			if (result.selected != undefined) {
				this._cmbFormaPago.setValue(result.selected);
			}
		} catch (ex) {
			alert(ex);
		}

		grp.add(this._cmbFormaPago);
		grp.add(this._btnGuardar);

		this._btnGuardar.addListener("execute", function (e) {
			try {
				if (this._cmbFormaPago.getValue() != "") {
					if (this._cmbPrestaciones.getValue() != "") {
						var registro = new Object();
						registro.codTurno = this._codTurno;
						registro.formaPago = this._cmbFormaPago.getValue();
						registro.prestacion = this._cmbPrestaciones.getValue();
						registro.tipo_forma_pago = this._formuActivo;
						//registro.tabla = this._formuActivo;
						
						//ADD case osocial formuActivo
						switch (this._formuActivo) {
							case '1':
								registro.plus = this._txtPlus.getValue();
							break;
							case '2':
								registro.codigoHabilitacion = this._txtCodigoHabilitacion.getValue();
								registro.plus = this._txtPlus.getValue();
							break;
							default :
								if((this._txtCredito.getValue()!="0") && (this._txtCredito.getValue()!="")) {
									var pagares = new Array();
									var total = 0;
									for (var i=1;i<(this._txdPagare.length);i++) {
										var pagare = new Object();
										pagare.vencimiento = this._txdPagare[i].getValueToSQL();
										pagare.importe = this._txtPagareImporte[i].getValue();
										pagares.push(pagare);
										total+= parseFloat(pagare.importe);
									}
									
									if (isNaN(total))
										total = 0;
										
									total=Math.round(total*100)/100
									total=total.toFixed(2)
									
									if (parseFloat(total) < parseFloat(this._txtImporte.getValue())) {
										throw new Error("La suma de los pagares es menor al importe que se debe cobrar!");
									}
									
									registro.pagares = pagares;
								}
							break;
						}
						
						registro.importe = this._txtImporte.getValue();
						registro.observaciones = this._txaObservaciones.getValue();
						
						var rpc = new qx.io.remote.Rpc();
						rpc.setTimeout(10000);
						rpc.setUrl("services/");
						rpc.setServiceName("turnos");
		
						var result = rpc.callSync("setFormasPago", registro);
						this.close();
					}
					else
					{
						alert("Debe seleccionar la prestacion correspondiente.");
					}
				}
				else
				{
					alert("Debe seleccionar la forma de pago.");
				}
			}
			catch (ex)
			{
				alert(ex);
			}
		}, this);
		
		this.add(grp);
		this.add(grpFP);
		this.setModal(true);
		this.open();
	},
	members :
	{
		_codTurno : null,
		_formuActivo : null,
		_cntPagares : null,
		getTipoFormaPago : function (tipo) {
			var rpc = new qx.io.remote.Rpc();
			rpc.setTimeout(10000);
			rpc.setUrl("services/");
			rpc.setServiceName("turnos");
			try {
				var params = new Object();
				params.forma_pago = this._cmbFormaPago.getValue();
				params.tipo = this._tipo;
				params.cod_turno = this._codTurno;
				var result = rpc.callSync("getPrestaciones", params);
				
				var grpTipoFormaPago = new qx.ui.groupbox.GroupBox("").set({width:420});
				grpTipoFormaPago.setLayout(new qx.ui.layout.VBox(5));

				if (this._tipo == 'C') {
					this._cmbPrestaciones = new qx.ui.form.ow.ComboBox("Prestaciones:", result.cmbValues);
					this._cmbPrestaciones.getCombo().setWidth(400);
					
					if (result.cmbValues.length == 0)
					{
						alert('El plan del paciente no le brinda la cobertura para esta Cirugia \no no se encuentra cargado el importe en el Nomenclador de Prestaciones.');
						this._cmbPrestaciones.addValue({value:"", label:" "});
					}
					this._cmbPrestaciones.setEnabled(false);
				} else {
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);
					this._cmbPrestaciones.getCombo().setWidth(400);
				}

				this._cmbPrestaciones.addListener("changeValue", function () {
					if ((this._cmbPrestaciones.getValue() != "") && (this._cmbPrestaciones.getValue() != undefined) && (this._btnGuardar.getUserData("modificarImporte") == '1')) {
						this._txtImporte.setValue(result[this._cmbPrestaciones.getValue()]);
					} else {
						if (this._cmbPrestaciones.getValue() == "") {
							this._txtImporte.setValue("");
						}
					}
				}, this);
				
				this._txaObservaciones = new qx.ui.form.ow.TextArea("Observaciones:");
				this._txtImporte = new qx.ui.form.ow.TextField("Importe:");
				this._txtPlus = new qx.ui.form.ow.TextField("Plus:");
				grpTipoFormaPago.add(this._cmbPrestaciones);
				grpTipoFormaPago.add(this._txaObservaciones);
				
				if (tipo == "2") {
					this._txtCodigoHabilitacion = new qx.ui.form.ow.TextField("Codigo Habilitacion:");
					grpTipoFormaPago.add(this._txtCodigoHabilitacion);
				}
				
				grpTipoFormaPago.add(this._txtImporte);
				grpTipoFormaPago.add(this._txtPlus);
				
				if (this._tipo == 'C')
					this._cmbPrestaciones.fireEvent("changeValue");
					
				return grpTipoFormaPago;
			} catch (ex) {
				alert(ex);
			}	
		},
		getFormuCaraffa : function ()
		{
			var rpc = new qx.io.remote.Rpc();
			rpc.setTimeout(10000);
			rpc.setUrl("services/");
			rpc.setServiceName("turnos");
			try
			{
				var params = new Object();
				params.forma_pago = this._cmbFormaPago.getValue();
				params.tipo = this._tipo;
				params.cod_turno = this._codTurno;
				var result = rpc.callSync("getPrestaciones", params);
				
				var grpCaraffa = new qx.ui.groupbox.GroupBox("Caraffa").set({width:420});
				grpCaraffa.setLayout(new qx.ui.layout.VBox(5));
//				this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);

				if (this._tipo == 'C')
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues);
					this._cmbPrestaciones.getCombo().setWidth(400);
					
					if (result.cmbValues.length == 0)
					{
						alert('El plan del paciente no le brinda la cobertura para esta Cirugia \no no se encuentra cargado el importe en el Nomenclador de Prestaciones.');
						this._cmbPrestaciones.addValue({value:"", label:" "});
					}
					this._cmbPrestaciones.setEnabled(false);
				}
				else
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);
					this._cmbPrestaciones.getCombo().setWidth(400);
				}

				this._cmbPrestaciones.addListener("changeValue", function ()
				{
					if ((this._cmbPrestaciones.getValue() != "") && (this._cmbPrestaciones.getValue() != undefined) && (this._btnGuardar.getUserData("modificarImporte") == '1'))
					{
						this._txtImporte.setValue(result[this._cmbPrestaciones.getValue()]);
					}
					else
					{
						if (this._cmbPrestaciones.getValue() == "")
						{
							this._txtImporte.setValue("");
						}
					}
				}, this);
				
				this._txaObservaciones = new qx.ui.form.ow.TextArea("Observaciones:");
				this._txtImporte = new qx.ui.form.ow.TextField("Importe:");
				this._txtPlus = new qx.ui.form.ow.TextField("Plus:");
				grpCaraffa.add(this._cmbPrestaciones);
				grpCaraffa.add(this._txaObservaciones);
				grpCaraffa.add(this._txtImporte);
				grpCaraffa.add(this._txtPlus);
				
				if (this._tipo == 'C')
					this._cmbPrestaciones.fireEvent("changeValue");
					
				return grpCaraffa;
			}
			catch (ex)
			{
				alert(ex);
			}
		},
		getFormuPlanDorado : function ()
		{
			var rpc = new qx.io.remote.Rpc();
			rpc.setTimeout(10000);
			rpc.setUrl("services/");
			rpc.setServiceName("turnos");
			try
			{
				var params = new Object();
				params.forma_pago = this._cmbFormaPago.getValue();
				params.tipo = this._tipo;
				params.cod_turno = this._codTurno;
				var result = rpc.callSync("getPrestaciones", params);
				
				var grpPlanDorado = new qx.ui.groupbox.GroupBox("Plan Dorado").set({width:420});
				grpPlanDorado.setLayout(new qx.ui.layout.VBox(5));
//				this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);
				
				if (this._tipo == 'C')
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues);
					this._cmbPrestaciones.getCombo().setWidth(400);
					
					if (result.cmbValues.length == 0)
					{
						alert('El plan del paciente no le brinda la cobertura para esta Cirugia \no no se encuentra cargado el importe en el Nomenclador de Prestaciones.');
						this._cmbPrestaciones.addValue({value:"", label:" "});
					}
					
					this._cmbPrestaciones.setEnabled(false);
				}
				else
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);
					this._cmbPrestaciones.getCombo().setWidth(400);
				}				
				
				this._cmbPrestaciones.addListener("changeValue", function ()
				{
					if ((this._cmbPrestaciones.getValue() != "") && (this._cmbPrestaciones.getValue() != undefined) && (this._btnGuardar.getUserData("modificarImporte") == '1'))
					{
						this._txtImporte.setValue(result[this._cmbPrestaciones.getValue()]);
					}
					else
					{
						if (this._cmbPrestaciones.getValue() == "")
						{
							this._txtImporte.setValue("");
						}
					}
				}, this);
				
				this._txaObservaciones = new qx.ui.form.ow.TextArea("Observaciones:");
				this._txtImporte = new qx.ui.form.ow.TextField("Importe:");
				this._txtPlus = new qx.ui.form.ow.TextField("Plus:");
				grpPlanDorado.add(this._cmbPrestaciones);
				grpPlanDorado.add(this._txaObservaciones);
				grpPlanDorado.add(this._txtImporte);
				grpPlanDorado.add(this._txtPlus);
				
				if (this._tipo == 'C')
					this._cmbPrestaciones.fireEvent("changeValue");
					
				return grpPlanDorado;
			}
			catch (ex)
			{
				alert(ex);
			}
		},
		getFormuParqueSalud : function ()
		{
			var rpc = new qx.io.remote.Rpc();
			rpc.setTimeout(10000);
			rpc.setUrl("services/");
			rpc.setServiceName("turnos");
			try
			{
				var params = new Object();
				params.forma_pago = this._cmbFormaPago.getValue();
				params.tipo = this._tipo;
				params.cod_turno = this._codTurno;
				var result = rpc.callSync("getPrestaciones", params);
				
				var grpParqueSalud = new qx.ui.groupbox.GroupBox("Parque Salud").set({width:420});
				grpParqueSalud.setLayout(new qx.ui.layout.VBox(5));
//				this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);

				if (this._tipo == 'C')
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues);
					this._cmbPrestaciones.getCombo().setWidth(400);
					
					if (result.cmbValues.length == 0)
					{
						alert('El plan del paciente no le brinda la cobertura para esta Cirugia \no no se encuentra cargado el importe en el Nomenclador de Prestaciones.');
						this._cmbPrestaciones.addValue({value:"", label:" "});
					}
					
					this._cmbPrestaciones.setEnabled(false);
				}
				else
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);
					this._cmbPrestaciones.getCombo().setWidth(400);
				}				
								
				this._cmbPrestaciones.addListener("changeValue", function ()
				{
					if ((this._cmbPrestaciones.getValue() != "") && (this._cmbPrestaciones.getValue() != undefined) && (this._btnGuardar.getUserData("modificarImporte") == '1'))
					{
						this._txtImporte.setValue(result[this._cmbPrestaciones.getValue()]);
					}
					else
					{
						if (this._cmbPrestaciones.getValue() == "")
						{
							this._txtImporte.setValue("");
						}
					}
				}, this);
				
				this._txaObservaciones = new qx.ui.form.ow.TextArea("Observaciones:");
				this._txtCodigoHabilitacion = new qx.ui.form.ow.TextField("Codigo Habilitacion:");
				this._txtImporte = new qx.ui.form.ow.TextField("Importe:");
				this._txtPlus = new qx.ui.form.ow.TextField("Plus:");
				grpParqueSalud.add(this._cmbPrestaciones);
				grpParqueSalud.add(this._txaObservaciones);
				grpParqueSalud.add(this._txtCodigoHabilitacion);
				grpParqueSalud.add(this._txtImporte);
				grpParqueSalud.add(this._txtPlus);
				
				if (this._tipo == 'C')
					this._cmbPrestaciones.fireEvent("changeValue");
				
				return grpParqueSalud;
			}
			catch (ex)
			{
				alert(ex);
			}
		},
		getFormuFamily : function ()
		{
			var rpc = new qx.io.remote.Rpc();
			rpc.setTimeout(10000);
			rpc.setUrl("services/");
			rpc.setServiceName("turnos");
			try
			{
				var params = new Object();
				params.forma_pago = this._cmbFormaPago.getValue();
				params.tipo = this._tipo;
				params.cod_turno = this._codTurno;
				var result = rpc.callSync("getPrestaciones", params);
				
				var grpFamily = new qx.ui.groupbox.GroupBox("Family").set({width:420});
				grpFamily.setLayout(new qx.ui.layout.VBox(5));
//				this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);
				
				if (this._tipo == 'C')
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues);
					this._cmbPrestaciones.getCombo().setWidth(400);
					
					if (result.cmbValues.length == 0)
					{
						alert('El plan del paciente no le brinda la cobertura para esta Cirugia \no no se encuentra cargado el importe en el Nomenclador de Prestaciones.');
						this._cmbPrestaciones.addValue({value:"", label:" "});
					}
					
					this._cmbPrestaciones.setEnabled(false);
				}
				else
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);
					this._cmbPrestaciones.getCombo().setWidth(400);
				}
				
				this._cmbPrestaciones.addListener("changeValue", function ()
				{
					if ((this._cmbPrestaciones.getValue() != "") && (this._cmbPrestaciones.getValue() != undefined) && (this._btnGuardar.getUserData("modificarImporte") == '1'))
					{
						this._txtImporte.setValue(result[this._cmbPrestaciones.getValue()]);
					}
					else
					{
						if (this._cmbPrestaciones.getValue() == "")
						{
							this._txtImporte.setValue("");
						}
					}
				}, this);
				
				this._txaObservaciones = new qx.ui.form.ow.TextArea("Observaciones:");
				this._txtCodigoHabilitacion = new qx.ui.form.ow.TextField("Codigo Habilitacion:");
				this._txtImporte = new qx.ui.form.ow.TextField("Importe:");
				this._txtPlus = new qx.ui.form.ow.TextField("Plus:");
				grpFamily.add(this._cmbPrestaciones);
				grpFamily.add(this._txaObservaciones);
				grpFamily.add(this._txtCodigoHabilitacion);
				grpFamily.add(this._txtImporte);
				grpFamily.add(this._txtPlus);

				if (this._tipo == 'C')
					this._cmbPrestaciones.fireEvent("changeValue");

				return grpFamily;
			}
			catch (ex)
			{
				alert(ex);
			}
		},
		getFormuApross : function ()
		{
			var rpc = new qx.io.remote.Rpc();
			rpc.setTimeout(10000);
			rpc.setUrl("services/");
			rpc.setServiceName("turnos");
			try
			{
				var params = new Object();
				params.forma_pago = this._cmbFormaPago.getValue();
				params.tipo = this._tipo;
				params.cod_turno = this._codTurno;
				var result = rpc.callSync("getPrestaciones", params);
				
				var grpApross = new qx.ui.groupbox.GroupBox("Apross").set({width:420});
				grpApross.setLayout(new qx.ui.layout.VBox(5));
//				this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);
				
				if (this._tipo == 'C')
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues);
					this._cmbPrestaciones.getCombo().setWidth(400);
					
					if (result.cmbValues.length == 0)
					{
						alert('El plan del paciente no le brinda la cobertura para esta Cirugia \no no se encuentra cargado el importe en el Nomenclador de Prestaciones.');
						this._cmbPrestaciones.addValue({value:"", label:" "});
					}
					
					this._cmbPrestaciones.setEnabled(false);
				}
				else
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);
					this._cmbPrestaciones.getCombo().setWidth(400);
				}				
								
				this._cmbPrestaciones.addListener("changeValue", function ()
				{
					if ((this._cmbPrestaciones.getValue() != "") && (this._cmbPrestaciones.getValue() != undefined) && (this._btnGuardar.getUserData("modificarImporte") == '1'))
					{
						this._txtImporte.setValue(result[this._cmbPrestaciones.getValue()]);
					}
					else
					{
						if (this._cmbPrestaciones.getValue() == "")
						{
							this._txtImporte.setValue("");
						}
					}
				}, this);
				
				this._txaObservaciones = new qx.ui.form.ow.TextArea("Observaciones:");
				this._txtCodigoHabilitacion = new qx.ui.form.ow.TextField("Codigo Habilitacion:");
				this._txtImporte = new qx.ui.form.ow.TextField("Importe:");
				this._txtPlus = new qx.ui.form.ow.TextField("Plus:");
				grpApross.add(this._cmbPrestaciones);
				grpApross.add(this._txaObservaciones);
				grpApross.add(this._txtCodigoHabilitacion);
				grpApross.add(this._txtImporte);
				grpApross.add(this._txtPlus);

				if (this._tipo == 'C')
					this._cmbPrestaciones.fireEvent("changeValue");
					
				return grpApross;
			}
			catch (ex)
			{
				alert(ex);
			}
		},
		//ADD osocial function getFormuNUEVA_OBRASOCIAL	
		getFormuSurbac : function ()
		{
			var rpc = new qx.io.remote.Rpc();
			rpc.setTimeout(10000);
			rpc.setUrl("services/");
			rpc.setServiceName("turnos");
			try
			{
				var params = new Object();
				params.forma_pago = this._cmbFormaPago.getValue();
				params.tipo = this._tipo;
				params.cod_turno = this._codTurno;
				var result = rpc.callSync("getPrestaciones", params);
				
				var grpSurbac = new qx.ui.groupbox.GroupBox("Surbac").set({width:420});
				grpSurbac.setLayout(new qx.ui.layout.VBox(5));
//				this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);
				
				if (this._tipo == 'C')
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues);
					this._cmbPrestaciones.getCombo().setWidth(400);
					
					if (result.cmbValues.length == 0)
					{
						alert('El plan del paciente no le brinda la cobertura para esta Cirugia \no no se encuentra cargado el importe en el Nomenclador de Prestaciones.');
						this._cmbPrestaciones.addValue({value:"", label:" "});
					}
					
					this._cmbPrestaciones.setEnabled(false);
				}
				else
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);
					this._cmbPrestaciones.getCombo().setWidth(400);
				}				
								
				this._cmbPrestaciones.addListener("changeValue", function ()
				{
					if ((this._cmbPrestaciones.getValue() != "") && (this._cmbPrestaciones.getValue() != undefined) && (this._btnGuardar.getUserData("modificarImporte") == '1'))
					{
						this._txtImporte.setValue(result[this._cmbPrestaciones.getValue()]);
					}
					else
					{
						if (this._cmbPrestaciones.getValue() == "")
						{
							this._txtImporte.setValue("");
						}
					}
				}, this);
				
				this._txaObservaciones = new qx.ui.form.ow.TextArea("Observaciones:");
				this._txtCodigoHabilitacion = new qx.ui.form.ow.TextField("Codigo Habilitacion:");
				this._txtImporte = new qx.ui.form.ow.TextField("Importe:");
				this._txtPlus = new qx.ui.form.ow.TextField("Plus:");
				grpSurbac.add(this._cmbPrestaciones);
				grpSurbac.add(this._txaObservaciones);
				grpSurbac.add(this._txtCodigoHabilitacion);
				grpSurbac.add(this._txtImporte);
				grpSurbac.add(this._txtPlus);

				if (this._tipo == 'C')
					this._cmbPrestaciones.fireEvent("changeValue");
					
				return grpSurbac;
			}
			catch (ex)
			{
				alert(ex);
			}
		},		
		getFormuOsplyf : function ()
		{
			var rpc = new qx.io.remote.Rpc();
			rpc.setTimeout(10000);
			rpc.setUrl("services/");
			rpc.setServiceName("turnos");
			try
			{
				var params = new Object();
				params.forma_pago = this._cmbFormaPago.getValue();
				params.tipo = this._tipo;
				params.cod_turno = this._codTurno;
				var result = rpc.callSync("getPrestaciones", params);
				
				var grpOsplyf = new qx.ui.groupbox.GroupBox("Parque Salud").set({width:420});
				grpOsplyf.setLayout(new qx.ui.layout.VBox(5));
//				this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);

				if (this._tipo == 'C')
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues);
					this._cmbPrestaciones.getCombo().setWidth(400);
					
					if (result.cmbValues.length == 0)
					{
						alert('El plan del paciente no le brinda la cobertura para esta Cirugia \no no se encuentra cargado el importe en el Nomenclador de Prestaciones.');
						this._cmbPrestaciones.addValue({value:"", label:" "});
					}
					
					this._cmbPrestaciones.setEnabled(false);
				}
				else
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);
					this._cmbPrestaciones.getCombo().setWidth(400);
				}				
								
				this._cmbPrestaciones.addListener("changeValue", function ()
				{
					if ((this._cmbPrestaciones.getValue() != "") && (this._cmbPrestaciones.getValue() != undefined) && (this._btnGuardar.getUserData("modificarImporte") == '1'))
					{
						this._txtImporte.setValue(result[this._cmbPrestaciones.getValue()]);
					}
					else
					{
						if (this._cmbPrestaciones.getValue() == "")
						{
							this._txtImporte.setValue("");
						}
					}
				}, this);
				
				this._txaObservaciones = new qx.ui.form.ow.TextArea("Observaciones:");
				this._txtCodigoHabilitacion = new qx.ui.form.ow.TextField("Codigo Habilitacion:");
				this._txtImporte = new qx.ui.form.ow.TextField("Importe:");
				this._txtPlus = new qx.ui.form.ow.TextField("Plus:");
				grpOsplyf.add(this._cmbPrestaciones);
				grpOsplyf.add(this._txaObservaciones);
				grpOsplyf.add(this._txtCodigoHabilitacion);
				grpOsplyf.add(this._txtImporte);
				grpOsplyf.add(this._txtPlus);
				
				if (this._tipo == 'C')
					this._cmbPrestaciones.fireEvent("changeValue");
				
				return grpOsplyf;
			}
			catch (ex)
			{
				alert(ex);
			}
		},
		getFormuOsfatlyf : function ()
		{
			var rpc = new qx.io.remote.Rpc();
			rpc.setTimeout(10000);
			rpc.setUrl("services/");
			rpc.setServiceName("turnos");
			try
			{
				var params = new Object();
				params.forma_pago = this._cmbFormaPago.getValue();
				params.tipo = this._tipo;
				params.cod_turno = this._codTurno;
				var result = rpc.callSync("getPrestaciones", params);
				
				var grpOsfatlyf = new qx.ui.groupbox.GroupBox("OSFATLYF").set({width:420});
				grpOsfatlyf.setLayout(new qx.ui.layout.VBox(5));
//				this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);

				if (this._tipo == 'C')
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues);
					this._cmbPrestaciones.getCombo().setWidth(400);
					
					if (result.cmbValues.length == 0)
					{
						alert('El plan del paciente no le brinda la cobertura para esta Cirugia \no no se encuentra cargado el importe en el Nomenclador de Prestaciones.');
						this._cmbPrestaciones.addValue({value:"", label:" "});
					}
					
					this._cmbPrestaciones.setEnabled(false);
				}
				else
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);
					this._cmbPrestaciones.getCombo().setWidth(400);
				}				
								
				this._cmbPrestaciones.addListener("changeValue", function ()
				{
					if ((this._cmbPrestaciones.getValue() != "") && (this._cmbPrestaciones.getValue() != undefined) && (this._btnGuardar.getUserData("modificarImporte") == '1'))
					{
						this._txtImporte.setValue(result[this._cmbPrestaciones.getValue()]);
					}
					else
					{
						if (this._cmbPrestaciones.getValue() == "")
						{
							this._txtImporte.setValue("");
						}
					}
				}, this);
				
				this._txaObservaciones = new qx.ui.form.ow.TextArea("Observaciones:");
				this._txtCodigoHabilitacion = new qx.ui.form.ow.TextField("Codigo Habilitacion:");
				this._txtImporte = new qx.ui.form.ow.TextField("Importe:");
				this._txtPlus = new qx.ui.form.ow.TextField("Plus:");
				grpOsfatlyf.add(this._cmbPrestaciones);
				grpOsfatlyf.add(this._txaObservaciones);
				grpOsfatlyf.add(this._txtCodigoHabilitacion);
				grpOsfatlyf.add(this._txtImporte);
				grpOsfatlyf.add(this._txtPlus);
				
				if (this._tipo == 'C')
					this._cmbPrestaciones.fireEvent("changeValue");
				
				return grpOsfatlyf;
			}
			catch (ex)
			{
				alert(ex);
			}
		},		
		getFormuIter : function ()
		{
			var rpc = new qx.io.remote.Rpc();
			rpc.setTimeout(10000);
			rpc.setUrl("services/");
			rpc.setServiceName("turnos");
			try
			{
				var params = new Object();
				params.forma_pago = this._cmbFormaPago.getValue();
				params.tipo = this._tipo;
				params.cod_turno = this._codTurno;
				var result = rpc.callSync("getPrestaciones", params);
				
				var grpIter = new qx.ui.groupbox.GroupBox("ITER").set({width:420});
				grpIter.setLayout(new qx.ui.layout.VBox(5));
//				this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);

				if (this._tipo == 'C')
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues);
					this._cmbPrestaciones.getCombo().setWidth(400);
					
					if (result.cmbValues.length == 0)
					{
						alert('El plan del paciente no le brinda la cobertura para esta Cirugia \no no se encuentra cargado el importe en el Nomenclador de Prestaciones.');
						this._cmbPrestaciones.addValue({value:"", label:" "});
					}
					
					this._cmbPrestaciones.setEnabled(false);
				}
				else
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);
					this._cmbPrestaciones.getCombo().setWidth(400);
				}				
								
				this._cmbPrestaciones.addListener("changeValue", function ()
				{
					if ((this._cmbPrestaciones.getValue() != "") && (this._cmbPrestaciones.getValue() != undefined) && (this._btnGuardar.getUserData("modificarImporte") == '1'))
					{
						this._txtImporte.setValue(result[this._cmbPrestaciones.getValue()]);
					}
					else
					{
						if (this._cmbPrestaciones.getValue() == "")
						{
							this._txtImporte.setValue("");
						}
					}
				}, this);
				
				this._txaObservaciones = new qx.ui.form.ow.TextArea("Observaciones:");
				this._txtCodigoHabilitacion = new qx.ui.form.ow.TextField("Codigo Habilitacion:");
				this._txtImporte = new qx.ui.form.ow.TextField("Importe:");
				this._txtPlus = new qx.ui.form.ow.TextField("Plus:");
				grpIter.add(this._cmbPrestaciones);
				grpIter.add(this._txaObservaciones);
				grpIter.add(this._txtCodigoHabilitacion);
				grpIter.add(this._txtImporte);
				grpIter.add(this._txtPlus);
				
				if (this._tipo == 'C')
					this._cmbPrestaciones.fireEvent("changeValue");
				
				return grpIter;
			}
			catch (ex)
			{
				alert(ex);
			}
		},	
		getFormuAlumbrar : function ()
		{
			var rpc = new qx.io.remote.Rpc();
			rpc.setTimeout(10000);
			rpc.setUrl("services/");
			rpc.setServiceName("turnos");
			try
			{
				var params = new Object();
				params.forma_pago = this._cmbFormaPago.getValue();
				params.tipo = this._tipo;
				params.cod_turno = this._codTurno;
				var result = rpc.callSync("getPrestaciones", params);
				
				var grpAlumbrar = new qx.ui.groupbox.GroupBox("ALUMBRAR").set({width:420});
				grpAlumbrar.setLayout(new qx.ui.layout.VBox(5));
//				this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);

				if (this._tipo == 'C')
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues);
					this._cmbPrestaciones.getCombo().setWidth(400);
					
					if (result.cmbValues.length == 0)
					{
						alert('El plan del paciente no le brinda la cobertura para esta Cirugia \no no se encuentra cargado el importe en el Nomenclador de Prestaciones.');
						this._cmbPrestaciones.addValue({value:"", label:" "});
					}
					
					this._cmbPrestaciones.setEnabled(false);
				}
				else
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);
					this._cmbPrestaciones.getCombo().setWidth(400);
				}				
								
				this._cmbPrestaciones.addListener("changeValue", function ()
				{
					if ((this._cmbPrestaciones.getValue() != "") && (this._cmbPrestaciones.getValue() != undefined) && (this._btnGuardar.getUserData("modificarImporte") == '1'))
					{
						this._txtImporte.setValue(result[this._cmbPrestaciones.getValue()]);
					}
					else
					{
						if (this._cmbPrestaciones.getValue() == "")
						{
							this._txtImporte.setValue("");
						}
					}
				}, this);
				
				this._txaObservaciones = new qx.ui.form.ow.TextArea("Observaciones:");
				this._txtCodigoHabilitacion = new qx.ui.form.ow.TextField("Codigo Habilitacion:");
				this._txtImporte = new qx.ui.form.ow.TextField("Importe:");
				this._txtPlus = new qx.ui.form.ow.TextField("Plus:");
				grpAlumbrar.add(this._cmbPrestaciones);
				grpAlumbrar.add(this._txaObservaciones);
				grpAlumbrar.add(this._txtCodigoHabilitacion);
				grpAlumbrar.add(this._txtImporte);
				grpAlumbrar.add(this._txtPlus);
				
				if (this._tipo == 'C')
					this._cmbPrestaciones.fireEvent("changeValue");
				
				return grpAlumbrar;
			}
			catch (ex)
			{
				alert(ex);
			}
		},		
		getFormuObBsaAclinor : function ()
		{
			var rpc = new qx.io.remote.Rpc();
			rpc.setTimeout(10000);
			rpc.setUrl("services/");
			rpc.setServiceName("turnos");
			try
			{
				var params = new Object();
				params.forma_pago = this._cmbFormaPago.getValue();
				params.tipo = this._tipo;
				params.cod_turno = this._codTurno;
				var result = rpc.callSync("getPrestaciones", params);
				
				var grpObBsaAclinor = new qx.ui.groupbox.GroupBox(" OB BSA ACLINOR").set({width:420});
				grpObBsaAclinor.setLayout(new qx.ui.layout.VBox(5));
//				this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);

				if (this._tipo == 'C')
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues);
					this._cmbPrestaciones.getCombo().setWidth(400);
					
					if (result.cmbValues.length == 0)
					{
						alert('El plan del paciente no le brinda la cobertura para esta Cirugia \no no se encuentra cargado el importe en el Nomenclador de Prestaciones.');
						this._cmbPrestaciones.addValue({value:"", label:" "});
					}
					
					this._cmbPrestaciones.setEnabled(false);
				}
				else
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);
					this._cmbPrestaciones.getCombo().setWidth(400);
				}				
								
				this._cmbPrestaciones.addListener("changeValue", function ()
				{
					if ((this._cmbPrestaciones.getValue() != "") && (this._cmbPrestaciones.getValue() != undefined) && (this._btnGuardar.getUserData("modificarImporte") == '1'))
					{
						this._txtImporte.setValue(result[this._cmbPrestaciones.getValue()]);
					}
					else
					{
						if (this._cmbPrestaciones.getValue() == "")
						{
							this._txtImporte.setValue("");
						}
					}
				}, this);
				
				this._txaObservaciones = new qx.ui.form.ow.TextArea("Observaciones:");
				this._txtCodigoHabilitacion = new qx.ui.form.ow.TextField("Codigo Habilitacion:");
				this._txtImporte = new qx.ui.form.ow.TextField("Importe:");
				this._txtPlus = new qx.ui.form.ow.TextField("Plus:");
				grpObBsaAclinor.add(this._cmbPrestaciones);
				grpObBsaAclinor.add(this._txaObservaciones);
				grpObBsaAclinor.add(this._txtCodigoHabilitacion);
				grpObBsaAclinor.add(this._txtImporte);
				grpObBsaAclinor.add(this._txtPlus);
				
				if (this._tipo == 'C')
					this._cmbPrestaciones.fireEvent("changeValue");
				
				return grpObBsaAclinor;
			}
			catch (ex)
			{
				alert(ex);
			}
		},		
		getFormuIose : function ()
		{
			var rpc = new qx.io.remote.Rpc();
			rpc.setTimeout(10000);
			rpc.setUrl("services/");
			rpc.setServiceName("turnos");
			try
			{
				var params = new Object();
				params.forma_pago = this._cmbFormaPago.getValue();
				params.tipo = this._tipo;
				params.cod_turno = this._codTurno;
				var result = rpc.callSync("getPrestaciones", params);
				
				var grpIose = new qx.ui.groupbox.GroupBox("IOSE").set({width:420});
				grpIose.setLayout(new qx.ui.layout.VBox(5));
//				this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);

				if (this._tipo == 'C')
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues);
					this._cmbPrestaciones.getCombo().setWidth(400);
					
					if (result.cmbValues.length == 0)
					{
						alert('El plan del paciente no le brinda la cobertura para esta Cirugia \no no se encuentra cargado el importe en el Nomenclador de Prestaciones.');
						this._cmbPrestaciones.addValue({value:"", label:" "});
					}
					
					this._cmbPrestaciones.setEnabled(false);
				}
				else
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);
					this._cmbPrestaciones.getCombo().setWidth(400);
				}				
								
				this._cmbPrestaciones.addListener("changeValue", function ()
				{
					if ((this._cmbPrestaciones.getValue() != "") && (this._cmbPrestaciones.getValue() != undefined) && (this._btnGuardar.getUserData("modificarImporte") == '1'))
					{
						this._txtImporte.setValue(result[this._cmbPrestaciones.getValue()]);
					}
					else
					{
						if (this._cmbPrestaciones.getValue() == "")
						{
							this._txtImporte.setValue("");
						}
					}
				}, this);
				
				this._txaObservaciones = new qx.ui.form.ow.TextArea("Observaciones:");
				this._txtCodigoHabilitacion = new qx.ui.form.ow.TextField("Codigo Habilitacion:");
				this._txtImporte = new qx.ui.form.ow.TextField("Importe:");
				this._txtPlus = new qx.ui.form.ow.TextField("Plus:");
				grpIose.add(this._cmbPrestaciones);
				grpIose.add(this._txaObservaciones);
				grpIose.add(this._txtCodigoHabilitacion);
				grpIose.add(this._txtImporte);
				grpIose.add(this._txtPlus);
				
				if (this._tipo == 'C')
					this._cmbPrestaciones.fireEvent("changeValue");
				
				return grpIose;
			}
			catch (ex)
			{
				alert(ex);
			}
		},		
		getFormuContado : function ()
		{
			var rpc = new qx.io.remote.Rpc();
			rpc.setTimeout(10000);
			rpc.setUrl("services/");
			rpc.setServiceName("turnos");
			try
			{
				var params = new Object();
				params.forma_pago = this._cmbFormaPago.getValue();
				params.tipo = this._tipo;
				params.cod_turno = this._codTurno;
				var result = rpc.callSync("getPrestaciones", params);
				
				this._grpContado = new qx.ui.groupbox.GroupBox("").set({width:420});
				this._grpContado.setLayout(new qx.ui.layout.VBox(5));

				this._txaObservaciones = new qx.ui.form.ow.TextArea("Observaciones:");
				this._txtImporte = new qx.ui.form.ow.TextField("Importe:");
				this._cntCredito = new qx.ui.container.Composite(new qx.ui.layout.HBox(5));
					this._txtCredito = new qx.ui.form.ow.TextField("Credito (en ctas):");
						this._txtCredito.setValue("0");
						this._txtCredito.getText().setWidth(30);
					this._btnCredito = new qx.ui.form.Button("Crear");
				this._cntCredito.add(this._txtCredito);
				this._cntCredito.add(this._btnCredito);
				
				this._cntPagares = new qx.ui.container.Composite(new qx.ui.layout.VBox(5));
				
				if (this._tipo == 'C')
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboBox("Prestaciones:", result.cmbValues);
					this._cmbPrestaciones.getCombo().setWidth(400);
					if (result.cmbValues.length == 0)
					{
						alert('El plan del paciente no le brinda la cobertura para esta Cirugia \no no se encuentra cargado el importe en el Nomenclador de Prestaciones.');
						this._cmbPrestaciones.addValue({value:"", label:" "});
					}
					
					this._cmbPrestaciones.setEnabled(false);
				}
				else
				{
					this._cmbPrestaciones = new qx.ui.form.ow.ComboFilter("Prestaciones:", result.cmbValues, true);
					this._cmbPrestaciones.getCombo().setWidth(400);
				}
				
				this._cmbPrestaciones.addListener("changeValue", function ()
				{
					if ((this._cmbPrestaciones.getValue() != "") && (this._cmbPrestaciones.getValue() != undefined) && (this._btnGuardar.getUserData("modificarImporte") == '1'))
					{
						this._txtImporte.setValue(result[this._cmbPrestaciones.getValue()]);
					}
					else
					{
						if ((this._cmbPrestaciones.getValue() == "") || (this._cmbPrestaciones.getValue() == undefined)) 
						{
							this._txtImporte.setValue("");
						}
					}
				}, this);
				
				this._grpContado.add(this._cmbPrestaciones);
				this._grpContado.add(this._txaObservaciones);
				this._grpContado.add(this._txtImporte);
				this._grpContado.add(this._cntCredito);
				this._grpContado.add(this._cntPagares);
				
				this._btnCredito.addListener("execute", function()
				{
					var cuotas = this._txtCredito.getValue();
					if(cuotas>0)
					{
						this._txdPagare = null;
						this._txtPagareImporte = null;
						
						this._txdPagare = new Array();
						this._txtPagareImporte = new Array();
						
						this._cntPagares.removeAll();
						this._cntPagares.setLayout(new qx.ui.layout.VBox(5));
						
						for(var i=1;i<=cuotas;i++){
							var cntPagare = new qx.ui.container.Composite(new qx.ui.layout.HBox(5));
								this._txdPagare[i] = new qx.ui.form.ow.DateText("Pagare NÂ°"+i+" Vto:");
									this._txdPagare[i].getDateText().setWidth(110);
								this._txtPagareImporte[i] = new qx.ui.form.TextField();
								this._txtPagareImporte[i].setWidth(90);
							this._cntPagare.add(this._txdPagare[i]);
							this._cntPagare.add(this._txtPagareImporte[i]);
							this._cntPagares.add(this._cntPagare);
						}
					}
					 
				},this);
				
				if (this._tipo == 'C')
					this._cmbPrestaciones.fireEvent("changeValue");
				
				return this._grpContado;
			}
			catch (ex)
			{
				alert(ex);
			}
		}

	}
});